package com.ccp.dev.workflow.dao;

import com.ccp.dev.core.basic.base.IBaseMapper;
import com.ccp.dev.workflow.bpminterface.IActDefMapper;
import com.ccp.dev.workflow.model.TaskOpinion;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface TaskOpinionDao extends IBaseMapper<TaskOpinion,String>, IActDefMapper {

    /**
     * 根据流程实例id删除审批意见
     * @param procInstId 流程实例id
     */
    void delByProcInstId(String procInstId);

    /**
     * 根据任务id删除审批意见
     * @param taskId
     */
    void delByTaskId(String taskId);

    List<TaskOpinion> getByProcInstId(Map params);

    String getSupInstByProcInstId(String procInstId);

    List<TaskOpinion> getBySupInstId(String supperId);

    List<TaskOpinion> getCheckOpinionByInstId(String procInstId);

    List<TaskOpinion> getByProcInstIdExeUserId(@Param("procInstId")String procInstId, @Param("exeUserId")String exeUserId);

    TaskOpinion getByTaskId(String taskId);
    /**
     * 根据流程的实例id获取流程各个节点的评价信息
     * @param procInstId
     * @return
     */
    List<TaskOpinion> getOpinionByProcInstId(String  procInstId);

    /**
     *  姚陆洋
     * @param procInstId 流程实例id
     * @param taskKey 节点id
     * @return  节点意见列表
     */
    List<TaskOpinion> getByProcInstIdTaskKey(@Param("procInstId") String  procInstId,@Param("taskKey")String taskKey);

    /**
     * 根据任务ID获取保存的意见。
     * @param taskId
     * @param userId
     * @return
     */
    TaskOpinion getOpinionByTaskId(@Param("taskId")String taskId, @Param("userId")String userId);

    /**
     * 根据参数获取任务意见
     * @param procInstId 流程实例id
     * @param taskKey 节点id
     * @param checkStatus 状态
     * @return
     */
    List<TaskOpinion> queryByProcInstIdTaskKeyStatus(@Param("procInstId") String procInstId, @Param("taskKey")String taskKey, @Param("checkStatus")Short checkStatus);
}
